%\oddsidemargin -12pt \evensidemargin -12pt
%\topmargin -30pt \headheight 0.2in \headsep 0.0in \footheight 0.0in 
%\footskip 0.5in 

%\textheight 9.37in \textwidth 6.91in \columnsep .33in \columnseprule 0.0in
%\addtolength{\textheight}{2.2in}
%\addtolength{\textwidth}{2in}
%\addtolength{\oddsidemargin}{-1in}
%\addtolength{\topmargin}{-1.2in}


%\setstretch{1.0}

%\floatsep=2ex
%\textfloatsep=2ex
%\dblfloatsep=2ex
%\dbltextfloatsep=2ex


%\renewcommand{\textfraction}{0.15}
%\renewcommand{\topfraction}{0.85}
%\renewcommand{\bottomfraction}{.85}
%\renewcommand{\floatpagefraction}{.85}
\renewcommand{\dbltopfraction}{0.85}
%\renewcommand{\dblfloatpagefraction}{.85}
\newcommand{\comment}[1]{}

%\raggedbottom

\hyphenation{Post-Order Reverse-Post-Order Pre-Order Reverse-Pre-Order}

% -------------------------------------------------------------
% RvH 11/17/91; Commands for lining up code samples

\newsavebox{\boxone}
\newsavebox{\boxtwo}
\newsavebox{\boxthree}

\newlength{\narrow}
\setlength{\narrow}{.45\textwidth}
\newlength{\cnarrow}
\setlength{\cnarrow}{.45\columnwidth}

\newcommand{\topline}{
  \hrule
  \vskip .5\baselineskip}
\newcommand{\bottomline}{
  \vskip 2pt
  \hrule}

% produces centered horizontal box
% #1 = width, #2 = box contents
\newcommand{\chbox}[2]{
  \hbox to #1{\hss\vtop{#2}\hss}}

% produces centered narrow box
% #1 = box contents
\newcommand{\nchbox}[1]{
  \chbox{\narrow}{#1}}

% produces centered cnarrow box
% #1 = box contents
\newcommand{\cnchbox}[1]{
  \chbox{\cnarrow}{#1}}

% produces centered code
% #1 = file with TeX'ed code, #2 = desired width
\newcommand{\code}[2]{
  \chbox{#1}{\tgrind\input{#2}}}

% produces code of full text width
% #1 = file with TeX'ed code
\newcommand{\fcode}[1]{
  \code{\textwidth}{#1}}

% produces narrow code
% #1 = file with TeX'ed code
\newcommand{\ncode}[1]{
  \code{\narrow}{#1}}

% produces narrow figure
% #1 = figure, #2 = caption, #4 = label
\def\nfig#1#2#3{
  \vtop{\nchbox{#1}
  \hbox to\narrow{\parbox{\narrow}{\caption{#2}\label{#3}}}}}

% produces narrow code figure
% #1 = file, #2 = caption, #4 = label
\def\ncodefig#1#2#3{
  \nfig{\ncode{#1}}{#2}{#3}}

% produces cnarrow code
% #1 = file with TeX'ed code
\newcommand{\cncode}[1]{\code{\cnarrow}{#1}}

\def\codefiggen[#1]#2#3#4#5#6{
  \begin{figure}[#1]
  #5
  \fcode{#2}
  \center\parbox{.9\textwidth}{\caption{#3}\label{#4}}
  #6
  \end{figure}}

% Create one code figure
% #1 = loc, #2 = file, #3 = caption, #4 = label
\def\codefig[#1]#2#3#4{
  \codefiggen[#1]{#2}{#3}{#4}{}{}}

% Create one code figure, with lines
% #1 = loc, #2 = file, #3 = caption, #4 = label
\def\codefigline[#1]#2#3#4{
  \codefiggen[#1]{#2}{#3}{#4}{\topline}{\bottomline}}

\def\doublefiggen[#1]#2#3#4#5#6#7#8#9{
  \begin{figure}[#1]
  #8
  \hbox to \textwidth{
  \nfig{#2}{#3}{#4}
  \hfil
  \nfig{#5}{#6}{#7}}
  #9
  \end{figure}}

% Creates two figures, side by side
% #1 = loc, #2 = fig1, #3 = caption1, #4 = label1, #5 = fig2, 
% #6 = caption2, #7 = label2
\def\doublefig[#1]#2#3#4#5#6#7{
  \doublefiggen[#1]{#2}{#3}{#4}{#5}{#6}{#7}{}{}}

% Creates two figures, side by side, with lines
% #1 = loc, #2 = fig1, #3 = caption1, #4 = label1, #5 = fig2, 
% #6 = caption2, #7 = label2
\def\doublefigline[#1]#2#3#4#5#6#7{
  \doublefiggen[#1]{#2}{#3}{#4}{#5}{#6}{#7}{\topline}{\bottomline}}

% Creates two code figures, side by side
% #1 = loc, #2 = code1, #3 = caption1, #4 = label1, #5 = code2, 
% #6 = caption2, #7 = label2
\def\doublecodefig[#1]#2#3#4#5#6#7{
  \doublefig[#1]{\ncode{#2}}{#3}{#4}{\ncode{#5}}{#6}{#7}}

% Creates two code figures, side by side, with lines
% #1 = loc, #2 = code1, #3 = caption1, #4 = label1, #5 = code2, 
% #6 = caption2, #7 = label2
\def\doublecodefigline[#1]#2#3#4#5#6#7{
  \doublefigline[#1]{\ncode{#2}}{#3}{#4}{\ncode{#5}}{#6}{#7}}

% #1 = file1, #2 = caption1, #3 = file2, #4 = caption2
\newcommand{\codepair}[4]{\vbox{
  \hbox{\ncode{#1} \hfil \ncode{#3}}
  \vskip .3\baselineskip plus .3\baselineskip
  \hbox{\hbox to\narrow{#2\hfil} \hfil \hbox to\narrow{#4\hfil}}}}

% Creates one figure with two codes, side by side
% #1 = loc, #2 = file1, #3 = caption1, #4 = file2, #5 = caption2, 
% #6 = caption, #7 = label 
\def\codepairfig[#1]#2#3#4#5#6#7{
  \begin{figure}[#1]
  \codepair{#2}{#3}{#4}{#5}
  \center\parbox{.9\textwidth}{\caption{#6}}
  \label{#7}
  \end{figure}}

\def\cncodepairfiggen[#1]#2#3#4#5#6#7{
  \begin{figure}[#1]
  #6
  \hbox{\cncode{#2}\hfil\cncode{#3}}
  \center\parbox{.9\columnwidth}{\caption{#4}\label{#5}}
  #7
  \end{figure}}

% Create one narrow figure with 1 caption, 2 codes
% #1 = loc, #2 = file1, #3 = file2, #4 = caption, #5 = label
\def\cncodepairfig[#1]#2#3#4#5{
  \cncodepairfiggen[#1]{#2}{#3}{#4}{#5}{}{}}

% Create one narrow figure with 1 caption, 2 codes, with lines
% #1 = loc, #2 = file1, #3 = file2, #4 = caption, #5 = label
\def\cncodepairfigline[#1]#2#3#4#5{
  \cncodepairfiggen[#1]{#2}{#3}{#4}{#5}{\topline}{\bottomline}}

% Create two figures with one caption
% #1 = loc, #2 = fig1, #3 = fig2, #4 = caption, #5 = label
\def\doublefigOnecap*[#1]#2#3#4#5{
  \begin{figure*}[#1]
  \hbox to \textwidth{
  \nchbox{#2}
  \hfil
  \nchbox{#3}}
  \caption{#4}
  \label{#5}
  \end{figure*}}

% Create two figures with one caption
% #1 = loc, #2 = fig1, #3 = fig2, #4 = caption, #5 = label
\def\doublefigOnecap[#1]#2#3#4#5{
  \begin{figure}[#1]
  \topline
  \hbox to \columnwidth{
  \cnchbox{#2}
  \hfil
  \cnchbox{#3}}
  \caption{#4}
  \label{#5}
  \bottomline
  \end{figure}}

% Create one figure with one postscript file
% #1 = loc, #2 = ps, #3 = caption, #4 = label
\def\PSfig[#1]#2#3#4{
 \begin{figure}
 \centerline{\psfig{file=#2,width=\columnwidth}}
 \caption{{#3}} 
 \label{#4}
 \end{figure}}

% Create one figure with one postscript file, with lines
% #1 = loc, #2 = ps, #3 = caption, #4 = label
\def\PSfiglines[#1]#2#3#4{
 \begin{figure}[#1]
 \topline
 \centerline{\psfig{file=#2,width=\columnwidth}}
 \caption{{#3}} 
 \label{#4}
 \bottomline
 \end{figure}}

% Create one figure with one postscript file, with lines
% #1 = loc, #2 = ps, #3 = caption, #4 = label
\def\PSfiglinesht[#1]#2#3#4#5{
 \begin{figure}[#1]
 \topline
 \centerline{\psfig{file=#2,height=#3}}
 \caption{{#4}} 
 \label{#5}
 \bottomline
 \end{figure}}

% Create one figure with two postscript files, side by side
% #1 = loc, #2 = ps1, #3 = ps2, #4 = height, #5 = caption, #6 = label
\def\doublePSfig[#1]#2#3#4#5#6{
  \doublefigOnecap[#1]
    {\cnchbox{\psfig{file=#2,height=#4}}}
    {\cnchbox{\psfig{file=#3,height=#4}}}
    {#5}
    {#6}}

% Keywords
\def\k#1{{\bf #1}}
\def\m#1{{\em #1}}
\def\f#1{{\sf #1}}

\newlength{\boxwidth}
\setlength{\boxwidth}{3.2in}

\newcommand{\bproof}{{\bf Proof Sketch:}}
\newcommand{\eproof}{\mbox{$\Box$}}
\newcommand{\ind}{\; + \; {\em induction}}

% Environment for codes based on \tabbing
\def\tabcodeold#1#2#3{%
\begin{figure}[t]%
\hrule%
%\bcenter
%\framebox[\boxwidth]{
\center\parbox{\boxwidth}{%
\vbox{%
\begin{tabbing}%
#1
\end{tabbing}}}
 %\ecenter
 \caption{#2\label{#3}}
 \bottomline
 \end{figure}
}

% Environment for codes based on \tabbing
\def\tabcode#1#2#3{
 \begin{figure}[tbh]
 \topline\vs{-.4}
 \center{\begin{minipage}{\boxwidth}
 \small
 \begin{tabbing}
 #1
 \end{tabbing}
 \end{minipage}}
 \caption{#2\label{#3}}
 \bottomline
 \end{figure}
}

% Command for putting a frame around a piece of code
\def\fboxcode#1{%
 \small
 \fbox{%
 \begin{minipage}{\textwidth}
 \begin{tabbing}
 \tab\=\tab\=\tab\=\kill
 #1
 \end{tabbing}
 \end{minipage}}}

% Environment for two columns of code, based on \tabbing
\def\tabdoublecode#1#2#3#4{
 \begin{figure*}[t]
 \topline\vs{-.4}
 \hbox to \columnwidth{
 \vtop{\small
 \begin{tabbing}
 #1
 \end{tabbing}}
 \hfil
 \hfil
 \hfil
 \vtop{\small
 \begin{tabbing}
 #2
 \end{tabbing}}
 }
 \caption{#3\label{#4}}
 \bottomline
 \end{figure*}
}
\def\tabtriplecode#1#2#3#4#5{
 \begin{figure}
 \topline\vs{-.4}
 \hbox to \columnwidth{
 \vtop{\small
 \begin{tabbing}
 #1
 \end{tabbing}}
 \hfil
 \hfil
 \hfil
 \vtop{\small
 \begin{tabbing}
 #2
 \end{tabbing}}
 \hfil
 \hfil
 \hfil
 \vtop{\small
 \begin{tabbing}
 #3
 \end{tabbing}}
 }
 \caption{#4\label{#5}}
 \bottomline
 \end{figure}
}


% -------------------------------------------------------------

% Referencing and labelling
\newcommand{\lr}[1]{\label{ded:#1}}
\newcommand{\dr}[1]{(\ref{ded:#1})}
\newcommand{\er}[1]{(\ref{eq:#1})}
\newcommand{\eqq}[1]{\ref{eq:#1}}

\newcommand{\eqby}[1]{{\stackrel{#1}{=}}}
\newcommand{\supseteqby}[1]{{\stackrel{#1}{\supseteq}}}
\newcommand{\by}[1]{{\stackrel{#1}{\longrightarrow}}}
\newcommand{\byr}[1]{\by{\er{#1}}}
\newcommand{\byl}[1]{\by{\dr{#1}}}
\newcommand{\eqbyr}[1]{\eqby{\er{#1}}}

% Environment for deductions
\def\ded#1#2#3#4{
 \begin{equation}
 \lr{#1}
 [#2] \;\;\; \by{#3} \;\;\; {#4}
 \end{equation}}

% Environment for facts
\newcommand{\fac}[2]{
 \begin{equation}
 \label{ded:#1}
 {#2}
 \end{equation}}

% Negating
\def\no#1{\overline{#1}}

%Environment for lemmata, theorems
\newtheorem{lemma}{Lemma}
\newcommand{\blemma}{\begin{lemma}}
\newcommand{\elemma}{\end{lemma}}

\newtheorem{thm}{Theorem}
\newcommand{\bthm}{\begin{thm}}
\newcommand{\ethm}{\end{thm}}

\newtheorem{definition}{Definition}
\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}

\newtheorem{defin}{Definition}
\newcommand{\bdefin}{\begin{defin}}
\newcommand{\edefin}{\end{defin}}



% -------------------------------------------------------------

\newcommand{\naive}{{na\"{\i}ve}}
\newcommand{\naively}{{na\"{\i}vely}}

\def\FortD{{Fortran~D}}
\def\FssD{{Fortran 77D}}
\def\FnineD{{Fortran 90D}}
\def\Parti{{\sc Parti}}

\newcommand{\order}[1]{\mbox{${\cal O}(#1)$}}
\newcommand{\eg}{{\em e.g.}}
\newcommand{\Eg}{{\em E.g.}}
\newcommand{\ie}{{\em i.e.}}
%\def\etal{{\em et~al.}}
\def\etal{et~al.}
\newcommand{\eqv}{\mbox{ $\equiv$ }}
\newcommand{\lp}{\mbox{\bf (}}
\newcommand{\rp}{\mbox{\bf )}}
\newcommand{\sla}{\mbox{ $\leftarrow$ }}
\newcommand{\la}{\mbox{ $\longleftarrow$ }}
\newcommand{\La}{\mbox{ $\Longleftarrow$ }}
\newcommand{\ra}{\mbox{ $\longrightarrow$ }}
\newcommand{\ar}{\mbox{ $\rightarrow$ }}
\newcommand{\Ra}{\mbox{ $\Longrightarrow$ }}
\newcommand{\Lra}{\mbox{ $\Leftrightarrow$ }}
\newcommand{\LLra}{\mbox{ $\Longleftrightarrow$ }}
%\newcommand{\caupspace}{\!\!\!}
\newcommand{\caupspace}{\!\!\!}
\newcommand{\tight}[1]{\hs{-.02in}#1\hs{-.04in}}
\newcommand{\bgcap}[1]{\displaystyle\caupspace\bigcap_{#1}\caupspace}
\newcommand{\bgcup}[1]{\displaystyle\caupspace\bigcup_{#1}\caupspace}
\newcommand{\req}{&\caupspace=\caupspace&}
\newcommand{\hs}[1]{\hspace{#1}}
\newcommand{\tab}{\hs{.2in}}
\newcommand{\vs}[1]{\vspace{#1cm}}
\newcommand{\be}{\begin{equation}}
\newcommand{\ee}{\end{equation}}
\newcommand{\bec}[1]{\setcounter{equation}{#1} \be}
\newcommand{\through}{\mbox{$:$}}
\newcommand{\eqr}[2]{\mbox{$E(\ref{eq:#1}, #2)$}}

\newcommand{\bdesc}{\begin{description}}
\newcommand{\edesc}{\end{description}}
\newcommand{\benum}{\begin{enumerate}}
\newcommand{\eenum}{\end{enumerate}}
\newcommand{\bitem}{\begin{itemize}}
\newcommand{\eitem}{\end{itemize}}
\newcommand{\bcenter}{\begin{center}}
\newcommand{\ecenter}{\end{center}}
\newcommand{\btabular}{\begin{tabular}}
\newcommand{\etabular}{\end{tabular}}
\newcommand{\beqnarr}{
 %\setlength{\jot}{1pt}
 %\setlength{\abovedisplayskip}{0ex}
 \begin{eqnarray}}
\newcommand{\eeqnarr}{\end{eqnarray}}
 
\newcommand{\bnf}[1]{$\langle {#1} \rangle$}
 
\newcommand{\port}[1]{\hat{#1}}
\newcommand{\eltaccent}[1]{\tilde{#1}}
\newcommand{\elt}[1]{\eltaccent{#1}}
\newcommand{\eltt}[1]{\eltaccent{\eltaccent{\mbox{$#1$}}}}
\newcommand{\mysetminus}{-}
\newcommand{\mysetminuss}{\eltt{\mysetminus}}
\newcommand{\melt}[1]{\mbox{$\elt{#1}$}}
\newcommand{\meltt}[1]{\mbox{$\eltt{#1}$}}
\newcommand{\mport}[1]{\mbox{$\port{#1}$}}
\newcommand{\mmysetminuss}{\mbox{$\mysetminuss$}}
\newcommand{\cl}[1]{${\cal#1}$}
 
\newcommand{\str}[1]{{\em #1}^*}
 
\newcommand{\spread}[1]{\mbox{{\em {#1}}$^*$}}
\newcommand{\affect}[1]{\mbox{{\em {#1}}$^\cup$}}
\newcommand{\contain}[1]{\mbox{{\em {#1}}$^\cap$}}
\newcommand{\touch}[1]{\mbox{{\em {#1}}$^\circ$}}
 
\newcommand{\ALL}{\top}
\newcommand{\VAR}{\f{VAR}}
\newcommand{\BLOCK}{\f{BLOCK}}
\newcommand{\GEN}{\f{GEN}}
\newcommand{\GIVE}{\f{GIVE}}
\newcommand{\GIVEN}{\f{GIVEN}}
\newcommand{\MOVE}{\f{MOVE}}
\newcommand{\RES}{\f{RES}}
\newcommand{\STEAL}{\f{STEAL}}
\newcommand{\TAKE}{\f{TAKE}}
\newcommand{\TAKEN}{\f{TAKEN}}

\newcommand{\gt}{{\em GiveNTake}}
\newcommand{\Gtp}{Give-N-Take}
\newcommand{\Gt}{{\sc \Gtp}}
%\newcommand{\smallbf}{\small\bf}
\newcommand{\GT}{G{\small\bf IVE}-N-T{\small\bf AKE}}
\newcommand{\Eager}{\mbox{\sc Eager}}
\newcommand{\Lazy}{\mbox{\sc Lazy}}
\newcommand{\entry}{\mbox{$_{\em entry}$}}
\newcommand{\jump}{\mbox{$_{\em jump}$}}
\newcommand{\loc}{\mbox{$_{\em loc}$}}
\newcommand{\In}{{\em in}}
\newcommand{\Out}{{\em out}}
\newcommand{\inn}{\mbox{$_{\In}$}}
\newcommand{\init}{\mbox{$_{\em init}$}}
\newcommand{\out}{\mbox{$_{\Out}$}}
\newcommand{\sib}{\mbox{$_{\em siblings}$}}
\newcommand{\eeager}{{\em eager}}
\newcommand{\elazy}{{\em lazy}}
\newcommand{\earl}{\mbox{$^{\eeager}$}}
\newcommand{\eager}{\mbox{$^{\eeager}$}}
\newcommand{\eagerin}{\mbox{$^{\eeager}_{\em in}$}}
\newcommand{\eagerout}{\mbox{$^{\eeager}_{\em out}$}}
\newcommand{\lazy}{\mbox{$^{\elazy}$}}
\newcommand{\lazyin}{\mbox{$^{\elazy}_{\em in}$}}
\newcommand{\lazyout}{\mbox{$^{\elazy}_{\em out}$}}

\newcommand{\excode}{{\em prog}}
\newcommand{\Dir}{\mbox{\sc Direction}}
\newcommand{\Read}{\mbox{\sc Read}}
\newcommand{\Write}{\mbox{\sc Write}}
%\newcommand{\Send}{\mbox{$_{\sc Send}$}}
%\newcommand{\Recv}{\mbox{$_{\sc Recv}$}}
\newcommand{\Send}{\mbox{$_{\em Send}$}}
\newcommand{\Recv}{\mbox{$_{\em Recv}$}}
\newcommand{\WriteAdd}{{\sc WriteAdd}}
\newcommand{\WriteMult}{{\sc WriteMult}}
\newcommand{\Upward}{{\sc Upward}}
\newcommand{\Downward}{{\sc Downward}}
\newcommand{\Forward}{{\sc Forward}}
\newcommand{\Backward}{{\sc Backward}}
\newcommand{\Before}{{\sc Before}}
\newcommand{\After}{{\sc After}}
\newcommand{\pre}{{\sc PreOrder}}
\newcommand{\post}{{\sc PostOrder}}
\newcommand{\revpre}{{\sc ReversePreOrder}}
\newcommand{\revpost}{{\sc ReversePostOrder}}
%\newcommand{\}{{\em }}
\newcommand{\TP}{$T^+$}
\newcommand{\Children}{\mbox{\sc Children}}
\newcommand{\preds}{\mbox{\footnotesize\sc Preds}}
%\newcommand{\predsP}{\mbox{{\footnotesize\sc Preds}$^+$}}
\newcommand{\Preds}{\mbox{\sc Preds}}
%\newcommand{\PredsP}{\mbox{{\sc Preds}$^+$}}
%\newcommand{\succs}{\mbox{\footnotesize\sc Succs}}
\newcommand{\Succs}{\mbox{\sc Succs}}
%\newcommand{\succsP}{\mbox{{\footnotesize\sc Succs}$^+$}}
%\newcommand{\SuccsP}{\mbox{{\sc Succs}$^+$}}
%\newcommand{\succsM}{\mbox{{\footnotesize\sc Succs}$^-$}}
%\newcommand{\SuccsM}{\mbox{{\sc Succs}$^-$}}
\newcommand{\type}{\mbox{{\scriptsize T}{\tiny YPE}}}
\newcommand{\Type}{\mbox{\sc Type}}
\newcommand{\Back}{\mbox{\sc Cycle}}
\newcommand{\Entry}{\mbox{\sc Entry}}
\newcommand{\Flow}{\mbox{\sc Forward}}
\newcommand{\Jump}{\mbox{\sc Jump}}
\newcommand{\Synthetic}{\mbox{\sc Synthetic}}
\newcommand{\Bletter}{C}
\newcommand{\Eletter}{E}
\newcommand{\Fletter}{F}
\newcommand{\Jletter}{J}
\newcommand{\Sletter}{S}
\newcommand{\ET}{{\rm \Eletter}}
\newcommand{\BT}{{\rm \Bletter}}
\newcommand{\JT}{{\rm \Jletter}}
\newcommand{\FT}{{\rm \Fletter}}
\newcommand{\ST}{{\rm \Sletter}}
\newcommand{\Et}{{\rm\small \Eletter}}
\newcommand{\Bt}{{\rm\small \Bletter}}
\newcommand{\Jt}{{\rm\small \Jletter}}
\newcommand{\Ft}{{\rm\small \Fletter}}
\newcommand{\St}{{\rm\small \Sletter}}
\newcommand{\et}{\mbox{\tiny \Eletter}}
\newcommand{\bt}{\mbox{\tiny \Bletter}}
\newcommand{\jt}{\mbox{\tiny \Jletter}}
\newcommand{\ft}{\mbox{\tiny \Fletter}}
\newcommand{\st}{\mbox{\tiny \Sletter}}
\newcommand{\meetees}{\mbox{\sc meetees}}
\newcommand{\Root}{\mbox{\sc Root}}
\newcommand{\Header}{\mbox{\sc Header}}
\newcommand{\Start}{\mbox{\sc Start}}
\newcommand{\Stop}{\mbox{\sc Stop}}
%\newcommand{\FirstChild}{\mbox{\sc FirstChild}}
%\newcommand{\firstChild}{\mbox{\footnotesize\sc FirstChild}}
\newcommand{\LastChild}{\mbox{\sc LastChild}}
\newcommand{\level}{\mbox{\sc Level}}

%\newcommand{\Partners}{{\em Partners}}
%\newcommand{\Pairs}{{\em Pairs}}


%%%%%%%%%% Gagan %%%%%%%%%% 
%%%%%%%% New commands for PLDI paper %%%%%%%% 
%% 
\newcommand{\R}{\mbox{${\cal R}$}} 
\newcommand{\E}{\mbox{${\cal E}$}} 
%% 
\newcommand{\cobeg}{\mbox{\small $cobeg(e)$}} 
\newcommand{\coend}{\mbox{\small $coend(e)$}} 
\newcommand{\predA}{\mbox{\small $pred(e)$}} 
\newcommand{\succA}{\mbox{\small $succ(e)$}} 
\newcommand{\predB}{\mbox{\small $pred^{\prime}(e)$}} 
\newcommand{\succB}{\mbox{\small $succ^{\prime}(e)$}} 
%% 
\newcommand{\aapp}{\mbox{({\em p}$^{\prime}$)}} 
\newcommand{\aass}{\mbox{({\em s}$^{\prime}$)}} 
\newcommand{\aap}{\mbox{({\em p})}} 
\newcommand{\aas}{\mbox{({\em s})}} 
\newcommand{\aae}{\mbox{({\em e})}} 
\newcommand{\aai}{\mbox{({\em i})}} 
\newcommand{\bee}{\mbox{({\em b})}} 
\newcommand{\cee}{\mbox{({\em c})}} 
%% 
\newcommand{\AVAILIN}{\mbox{\rm AVIN}}
\newcommand{\AVAILOUT}{\mbox{\rm AVOUT}}
\newcommand{\PAVAILIN}{\mbox{\rm PAVIN}}
\newcommand{\PAVAILOUT}{\mbox{\rm PAVOUT}}
\newcommand{\COMP}{\mbox{\rm AVLOC}} 
\newcommand{\TRAN}{\mbox{\rm TRANS}} 
\newcommand{\TRANA}{\mbox{\sc {T\small{RANS}}}}
\newcommand{\ANTLOC}{\mbox{\rm ANTLOC}} 
\newcommand{\PPOUT}{\mbox{\rm PPOUT}} 
\newcommand{\PPIN}{\mbox{\rm PPIN}} 
\newcommand{\INSERT}{\mbox{\rm INSERT}} 
\newcommand{\INSERTOUT}{\mbox{\rm INSERT}} 
\newcommand{\DELETE}{\mbox{\rm DEL}} 
\newcommand{\PROF}{\mbox{\rm PROF}}
\newcommand{\TEMPA}{\mbox{\rm TEMP1}} 
\newcommand{\TEMPB}{\mbox{\rm TEMP2}} 
\newcommand{\TEMPC}{\mbox{\rm TEMP3}} 
%% 
%%%%%% Defining conditions which will be used %%%%% 
%%%%%% In data flow equations   %%%%%%%%% 
%% 
%%% FOLLOWING THREE FOR FORWARD PROBS %%%%% 
\newcommand{\OCCURS}{\mbox{\sc {O\small{CR}}}}
\newcommand{\ifcIA}{\mbox{if $i$ is entry  block }} 
\newcommand{\ifcA}{\mbox{if $So(e)$ is {\sc begin} node}} 
\newcommand{\ifcB}{\mbox{if $So(e) \in {\cal E}$}}  
\newcommand{\ifcXB}{\mbox{if $(So(e) \in {\cal E})\,\wedge\,(\,\OCCURS(cs\_end(p)\,)\,)$}}  
\newcommand{\XifcXB}{\mbox{if $(So(e) \in {\cal E})\,\wedge\,(\,\OCCURS_{\cal C}(cs\_end(p)\,)\,)$}}  
\newcommand{\ifcC}{\mbox{if $So(e) \in {\cal R}$}}  
\newcommand{\ifcCA}{\mbox{if $(So(e) \in {\cal R})\,\wedge\,(\,\neg\,\OCCURS(cs\_beg(e)\,)\,)$}}  
\newcommand{\XifcCA}{\mbox{if $(So(e) \in {\cal R})\,\wedge\,(\,\neg\,\OCCURS_{\cal C}(cs\_beg(e)\,)\,)$}}  
\newcommand{\ifcCB}{\mbox{if $(So(e) \in {\cal R})\,\wedge\,(\,\OCCURS\,(cs\_beg(e)\,)\,)$}}  
\newcommand{\XifcCB}{\mbox{if $(So(e) \in {\cal R})\,\wedge\,(\,\OCCURS_{\cal C}\,(cs\_beg(e)\,)\,)$}}  
%%%% FOLLOWING THREE FOR BACKWARD PROBS 
%%
\newcommand{\ifcID}{\mbox{if $i$ is exit  block}} 
\newcommand{\ifcD}{\mbox{if $Si(e)$ is {\sc end} node}} 
\newcommand{\ifcE}{\mbox{if $Si(e) \in {\cal R}$}} 
\newcommand{\ifcXE}{\mbox{if $(Si(e) \in {\cal R})\,\wedge\,(\,\OCCURS(cs\_beg(s)\,)\,)$}} 
\newcommand{\XifcXE}{\mbox{if $(Si(e) \in {\cal R})\,\wedge\,(\,\OCCURS_{\cal C}(cs\_beg(s)\,)\,)$}} 
\newcommand{\ifcF}{\mbox{if $Si(e) \in {\cal E}$}} 
\newcommand{\ifcFA}{\mbox{if $(Si(e) \in {\cal E})\,\wedge\,(\,\neg\OCCURS(cs\_end(e)\,)\,)$}} 
\newcommand{\XifcFA}{\mbox{if $(Si(e) \in {\cal E})\,\wedge\,(\,\neg \OCCURS_{\cal C}(cs\_end(e)\,)\,)$}} 
\newcommand{\XifcFB}{\mbox{if $(Si(e) \in {\cal E})\,\wedge\,(\,\OCCURS_{\cal C}(cs\_end(e)\,)\,)$}} 
%%%% Follwing are used for RNM function declarations  
\newcommand{\ifcg}{\mbox{if $ v_i \, \in \, gv$}} 
\newcommand{\ifch}{\mbox{if $ v_i \, = \, ap_{cs}(j)$}} 
\newcommand{\ifci}{\mbox{if $ \exists i, \; (v_i \notin gv)\,\wedge\,(\forall j\, , v_i \neq ap_{cs}(j))$}} 
\newcommand{\ifcj}{\mbox{otherwise}} 
\newcommand{\ifck}{\mbox{if $ v_i \, \in \, gv$}} 
\newcommand{\ifcl}{\mbox{if $ v_i \, = \, fp_{cs}(j)$}} 
\newcommand{\ifcm}{\mbox{if $ \exists i, \; (v_i \notin gv)\,\wedge\,(\forall j\, , v_i \neq fp_{cs}(j))$}} 
\newcommand{\ifcn}{\mbox{otherwise}} 
%%%% SHORT FORM FOR THE  PROD INFO %%%%%%%% 
%% 
\newcommand{\prodA}{\mbox{$\bigwedge_{p \in \predA}$}} 
\newcommand{\prodB}{\mbox{$\bigwedge_{p^{\prime} \in \predB}$}} 
\newcommand{\prodC}{\mbox{$\bigwedge_{s \in \succA}$}} 
\newcommand{\prodD}{\mbox{$\bigwedge_{s^{\prime} \in \succB}$}}
\newcommand{\prodE}{\mbox{$\bigwedge_{c \in \cobeg}$}} 
\newcommand{\prodF}{\mbox{$\bigwedge_{c \in \coend}$}} 
\newcommand{\prodIA}{\mbox{$\prod_{p \in pred(i)}$}} 
\newcommand{\prodID}{\mbox{$\prod_{s \in succ(i)}$}} 
%%%%  SHORT FORM FOR THE DISJUNCT INFO %%%%%% 
%% 
\newcommand{\summA}{\mbox{$\bigvee_{p \in \predA}$}} 
\newcommand{\summB}{\mbox{$\bigvee_{p^{\prime} \in \predB}$}} 
\newcommand{\summC}{\mbox{$\bigvee_{s \in \succA}$}} 
\newcommand{\summD}{\mbox{$\bigvee_{s^{\prime} \in \succB}$}} 
\newcommand{\summIA}{\mbox{$\sum_{p \in pred(i)}$}} 
%% 
%%%%  Rename functions %%%%%  
\newcommand{\RNM}{\mbox{\sc {R\small{NM}}}}
\newcommand{\RNMA}{\mbox{\sc {R\small{NM1}}}} 
\newcommand{\RNMB}{\mbox{\sc {R\small{NM2}}}} 
\newcommand{\RNMAA}{\mbox{\sc {R\small{NM1}}$_{cs}$}} 
\newcommand{\RNMBA}{\mbox{\sc {R\small{NM2}}$_{cs}$}} 
\newcommand{\TA}{\mbox{\sc {T\small{1}}}}
\newcommand{\TB}{\mbox{\sc {T\small{2}}}}
%%%%%  Other functions %%%%% 
\newcommand{\TRANS}{\mbox{\sc {T\small{RANS}}$_e$}}
\newcommand{\MOD}{\mbox{\sc {C\small{MOD}}}}

%%%%%%%% New commands for  IO paper %%%%%%%% 
%% 
\newcommand{\CAVAILIN}{{\mbox{\rm AVIN}}_{{\cal C}\_(cs\_beg(e))}}
\newcommand{\DAVAILIN}{{\mbox{\rm AVIN}}_{{\cal C}\_(cs\_beg(s))}}
\newcommand{\AAVAILIN}{{\mbox{\rm AVIN}}_{\cal C}}
\newcommand{\AAVAILOUT}{{\mbox{\rm AVOUT}}_{\cal C}}
\newcommand{\ACOMP}{{\mbox{\rm AVLOC}}_{\cal C}} 
%
\newcommand{\CANTICOUT}{{\mbox{\rm ANTOUT}}_{{\cal C}\_(cs\_end(e))}}
\newcommand{\DANTICOUT}{{\mbox{\rm ANTOUT}}_{{\cal C}\_(cs\_end(p))}}
\newcommand{\AANTICOUT}{{\mbox{\rm ANTOUT}}_{\cal C}}
\newcommand{\AANTICIN}{{\mbox{\rm ANTIN}}_{\cal C}}
\newcommand{\AANTLOC}{{\mbox{\rm ANTLOC}}_{\cal C}} 
\newcommand{\XANTICOUT}{{\mbox{\rm ANTOUT}}}
\newcommand{\XANTICIN}{{\mbox{\rm ANTIN}}}
\newcommand{\SANTICOUT}{{\mbox{\rm\small ANTICOUT}}}
\newcommand{\SANTICIN}{{\mbox{\rm\small ANTICIN}}}
%
\newcommand{\INSERTIN}{\mbox{\rm INS\_IN}_{\cal C}} 
\newcommand{\INSERTBEG}{\mbox{\rm INS\_BEG}_{\cal C}} 
\newcommand{\INSERTEND}{\mbox{\rm INS\_END}_{\cal C}} 
\newcommand{\XINSERTIN}{\mbox{\rm INS\_IN}} 
\newcommand{\XINSERTBEG}{\mbox{\rm INS\_BEG}} 
\newcommand{\XINSERTEND}{\mbox{\rm INS\_END}} 
%
\newcommand{\FTRAN}{\mbox{\rm FTRANS}} 
\newcommand{\FTRANA}{\mbox{\sc {F\small{TRANS}}}}
% 
\newcommand{\FMOD}{\mbox{\sc {F\small{MOD}}}}
\newcommand{\prodAE}{\mbox{$\bigwedge_{b \in \cobeg}$}} 
\newcommand{\prodAF}{\mbox{$\bigwedge_{b \in \coend}$}} 
%
\newcommand{\SUM}{\mbox{\small SUM}}
\newcommand{\FSUMM}{\mbox{\sc {F\small{SUM}}}}
\newcommand{\FSUMMA}{\mbox{\sc {F\small{SUM1}}}}
\newcommand{\FSUMMB}{\mbox{\sc {F\small{SUM2}}}}
%
\newcommand{\FTRANS}{\mbox{\sc {T\small{RANS}}$_e$}}
\newcommand{\FATRANA}{\mbox{\sc {F\small{TRANS1}}}}
\newcommand{\FBTRANA}{\mbox{\sc {F\small{TRANS2}}}}
\newcommand{\FATRANS}{\mbox{\sc {F\small{TRANS1}}$_e$}}
\newcommand{\FBTRANS}{\mbox{\sc {F\small{TRANS2}}$_e$}}
%
\newcommand{\BINDA}{\mbox{\small BIND}}
\newcommand{\BINDB}{\mbox{\small BIND}^{-1}}
